---
title: CLIコマンド
i18nReady: true
---
import Since from '~/components/Since.astro';
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro'



Astro が提供するコマンドラインインターフェイス（CLI）を使用して、ターミナルウィンドウからプロジェクトの開発、ビルド、およびプレビューができます。

### `astro`コマンド

好みのパッケージマネージャーによりこのページで説明されている**コマンド**のいずれかを実行し、CLIを使用します。オプションで**フラグ**も指定できます。フラグはコマンドの動作をカスタマイズします。

最もよく使用するコマンドの1つは`astro dev`です。このコマンドは開発サーバーを起動し、ブラウザで作業中のサイトのライブプレビューを提供します。

<PackageManagerTabs>
  <Fragment slot="npm">
  ```shell
  # 開発サーバーを起動する
  npx astro dev
  ```
  </Fragment>
  <Fragment slot="pnpm">
  ```shell
  # 開発サーバーを起動する
  pnpm astro dev
  ```
  </Fragment>
  <Fragment slot="yarn">
  ```shell
  # 開発サーバーを起動する
  yarn astro dev
  ```
  </Fragment>
</PackageManagerTabs>

ターミナルで`astro --help`と入力すると、利用可能なすべてのコマンドのリストが表示されます。

<PackageManagerTabs>
  <Fragment slot="npm">
  ```shell
  npx astro --help
  ```
  </Fragment>
  <Fragment slot="pnpm">
  ```shell
  pnpm astro --help
  ```
  </Fragment>
  <Fragment slot="yarn">
  ```shell
  yarn astro --help
  ```
  </Fragment>
</PackageManagerTabs>

ターミナルには以下のメッセージが表示されます。

```bash
astro [command] [...flags]

Commands
              add  Add an integration.
            build  Build your project and write it to disk.
            check  Check your project for errors.
              dev  Start the development server.
             docs  Open documentation in your web browser.
             info  List info about your current Astro setup.
          preview  Preview your build locally.
             sync  Generate content collection types.
        telemetry  Configure telemetry settings.

Global Flags
  --config <path>  Specify your config file.
    --root <path>  Specify your project root folder.
     --site <url>  Specify your project site.
--base <pathname>  Specify your project base.
        --verbose  Enable verbose logging.
         --silent  Disable all logging.
        --version  Show the version number and exit.
           --open  Open the app in the browser on server start.
           --help  Show this help message.
```

:::note
フラグの前の `--` は、 `npm` が `astro` コマンドにフラグを渡すために必要なものです。
:::

### `package.json`スクリプト

これらのコマンドの短縮版として`package.json`のスクリプトも使用できます。スクリプトにより、他のプロジェクトでよく見る`npm run build`のようなコマンドを使用できます。

最もよく使う`astro`コマンド（`astro dev`、`astro build`、`astro preview`）に対応する以下のスクリプトは、[`create astro`ウィザード](/ja/install/auto/#1-セットアップウィザードを実行する)を使用してプロジェクトを作成すると自動的に追加されます。

[手動でAstroをインストールする](/ja/install/manual/#2-astroのインストール)手順に従うと、これらのスクリプトを自分で追加するよう促されます。また、このリストにその他のよく使用するコマンド用のスクリプトを手動で追加することもできます。

```json title="package.json"
{
  "scripts": {
    "dev": "astro dev",
    "start": "astro dev",
    "build": "astro build",
    "preview": "astro preview"
  }
}
```

これらの`astro`コマンド、またはそれらを実行するスクリプトは、フラグなしで使用することが多いですが、コマンドの動作をカスタマイズしたい場合はコマンドにフラグを追加します。たとえば、開発サーバーを別のポートで起動したり、サイトをビルドする際にデバッグ用に詳細なログを出力したりできます。

<PackageManagerTabs>
  <Fragment slot="npm">
  ```shell
  # `package.json`の`start`スクリプトを使用して、ポート8080で開発サーバーを起動する
  npm run start -- --port 8080

  # `package.json`の`build`スクリプトを使用して、サイトのビルド時に詳細なログを出力する
  npm run build -- --verbose
  ```
  </Fragment>
  <Fragment slot="pnpm">
  ```shell
  # `package.json`の`start`スクリプトを使用して、ポート8080で開発サーバーを起動する
  pnpm start --port 8080

  # `package.json`の`build`スクリプトを使用して、サイトのビルド時に詳細なログを出力する
  pnpm build --verbose
  ```
  </Fragment>
  <Fragment slot="yarn">
  ```shell
  # `package.json`の`start`スクリプトを使用して、ポート8080で開発サーバーを起動する
  yarn start --port 8080

  # `package.json`の`build`スクリプトを使用して、サイトのビルド時に詳細なログを出力する
  yarn build --verbose
  ```
  </Fragment>
</PackageManagerTabs>

{/*

ORIGINAL CONTENT That We Can Always revert to if new stuff is too friendly

You can use the Command-Line Interface (CLI) provided by Astro to develop, build, and preview your project from a terminal window.

Use the CLI by running one of the **commands** documented on this page, optionally followed by any **flags**. Flags customize the behavior of a command. For example, to start the development server on port `8080`, you would combine the `astro dev` command with the `--port` flag: `astro dev --port 8080`.

In most cases you will use the CLI via your package manager:

<PackageManagerTabs>
  <Fragment slot="npm">
  ```shell
  npx astro dev --port 8080
  ```
  </Fragment>
  <Fragment slot="pnpm">
  ```shell
  pnpm astro dev --port 8080
  ```
  </Fragment>
  <Fragment slot="yarn">
  ```shell
  yarn astro dev --port 8080
  ```
  </Fragment>
</PackageManagerTabs>

If you started your project using [the `create astro` wizard](/en/install/auto/#1-run-the-setup-wizard), you can also use the scripts in `package.json` for a shorter version of these commands. See the `README.md` in your project for details of which commands are available.

<PackageManagerTabs>
  <Fragment slot="npm">
  ```shell
  # run the dev server on port 8080 using the `start` script in `package.json`
  npm run start -- --port 8080
  ```
  </Fragment>
  <Fragment slot="pnpm">
  ```shell
  # run the dev server on port 8080 using the `start` script in `package.json`
  pnpm start --port 8080
  ```
  </Fragment>
  <Fragment slot="yarn">
  ```shell
  # run the dev server on port 8080 using the `start` script in `package.json`
  yarn start --port 8080
  ```
  </Fragment>
</PackageManagerTabs>

*/}

## `astro dev`

Astroの開発サーバーを起動します。これはアセットをバンドルしないローカルのHTTPサーバーです。ホットモジュールリプレースメント（HMR）を使用して、エディターで変更を保存した際にブラウザを更新します。

<h3>フラグ</h3>

Astroの開発サーバーの動作をカスタマイズするために以下のフラグを使用してください。他のAstroのコマンドと共通しているフラグについては、下記の[共通のフラグ](#共通のフラグ)を確認してください。

#### `--port <ポート番号>`

どのポートで起動するかを指定します。デフォルト値は`4321`です。

#### `--host [オプションのホストアドレス]`

開発サーバーがリッスンするネットワークIPアドレス、たとえばlocalhost以外のIPアドレスなどを設定します。これは開発時に携帯電話などのローカルの端末でプロジェクトをテストする際に便利です。

- `--host` - LANやパブリックのアドレスを含むすべてのアドレスでリッスンします
- `--host <カスタムアドレス>` - `<カスタムアドレス>`のネットワークIPアドレスで公開します

:::caution
本番環境で開発サーバーを公開するために`--host`フラグを使用しないでください。開発サーバーはサイト開発時にローカルで使用する場合のみを想定して設計されています。
:::

## `astro build`

サイトをデプロイ用にビルドします。デフォルトでは、静的ファイルを生成し`dist/`ディレクトリに配置します。[SSRが有効な場合](/ja/guides/server-side-rendering/)には、サイトに必要なサーバーのファイルを生成します。

<h3>フラグ</h3>

ビルドをカスタマイズするために以下のフラグを使用してください。他のAstroのコマンドと共通しているフラグについては、下記の[共通のフラグ](#共通のフラグ)を確認してください。

## `astro preview`

静的な`dist/`ディレクトリを配信するためのローカルサーバーを起動します。

このコマンドはデプロイ前に静的ビルドをローカルでプレビューする際に便利です。本番環境で実行するようには設計されていません。本番環境のホスティングについて知りたい場合は、[Astroウェブサイトをデプロイする](/ja/guides/deploy/)ためのガイドを確認してください。

Astro 1.5.0から、アダプターがサポートしている場合はSSRビルドに対しても`astro preview`を使えます。現在、[Nodeアダプター](/ja/guides/integrations-guide/node/)のみ`astro preview`をサポートしています。

下記の[共通のフラグ](#共通のフラグ)と組み合わせることができます。

## `astro check`

プロジェクトに対して診断機能（`.astro`ファイル内の型チェックなど）を実行し、コンソールにエラーを報告します。もし何かエラーがあれば、終了ステータス**1**でプロセスが終了します。

このコマンドはCIワークフローで使用されることを想定しています。

<h3>フラグ</h3>

コマンドの動作をカスタマイズするために以下のフラグを使用してください。

#### `--watch`

`.astro`ファイルへの変更を監視し、エラーを報告します。

:::note
このコマンドは`.astro`ファイル内の型チェックのみを実行します。
:::

📚 詳しくは[AstroのTypeScriptサポート](/ja/guides/typescript/)を確認してください。

## `astro sync`

<p>
  <Since v="2.0.0" />
</p>

:::tip
`astro dev`、`astro build`、または`astro check`を実行すると、`sync`コマンドも実行されます。
:::

すべてのAstroモジュールに対してTypeScriptの型を生成します。これにより、型推論に使用する[`src/env.d.ts`ファイル](/ja/guides/typescript/#準備)が設定され、[コンテンツコレクションAPI](/ja/guides/content-collections/)のための`astro:content`モジュールが定義されます。

## `astro add`

設定ファイルにインテグレーションを追加します。詳しくは[インテグレーションガイド](/ja/guides/integrations-guide/#インテグレーションの自動セットアップ)を確認してください。

## `astro docs`

ターミナルからAstroのドキュメントサイトを直接起動します。

## `astro info`

現在のAstro環境に関する重要な情報を報告します。Issueを開く際の情報提供に便利です。

```shell
astro info
```

以下は出力例です。

```
Astro                    v3.0.12
Node                     v20.5.1
System                   macOS (arm64)
Package Manager          pnpm
Output                   server
Adapter                  @astrojs/vercel/serverless
Integrations             none
```

## `astro telemetry`

現在のCLIのユーザーに対してテレメトリーの設定をおこないます。テレメトリーは、Astroのどの機能がもっともよく使われているかをAstroチームに提供するための匿名のデータです。

テレメトリーは以下のCLIコマンドで無効にできます。

```shell
astro telemetry disable
```

テレメトリーは次のコマンドにより再び有効にできます。

```shell
astro telemetry enable
```

`clear`コマンドはテレメトリーのデータをリセットします。

```shell
astro telemetry clear
```

:::tip[CI環境でテレメトリーを無効にしたいですか？]
CIスクリプトに`astro telemetry disable`コマンドを追加するか、`ASTRO_TELEMETRY_DISABLED`環境変数を設定してください。
:::

## 共通のフラグ

### `--root <path>`

プロジェクトルートのパスを指定します。もし何も指定されなければ現在の作業ディレクトリがルートとみなされます。

ルートはAstroの設定ファイルを見つけるために使用されます。

```shell
astro --root myRootFolder/myProjectFolder dev
```

### `--config <path>`

プロジェクトルートからの相対パスで設定ファイルのパスを指定します。デフォルト値は`astro.config.mjs`です。異なる名前の設定ファイルを使用する場合や別のフォルダに設定ファイルがある場合はこのフラグを使用してください。

```shell
astro --config config/astro.config.mjs dev
```

### `--site <url>`

プロジェクトの[`site`](/ja/reference/configuration-reference/#site)を設定します。このフラグを渡すと、`astro.config.mjs`ファイルの`site`の値が上書きされます。

### `--base <pathname>`

<Since v="1.4.1" />

プロジェクトの[`base`](/ja/reference/configuration-reference/#base)を設定します。このフラグを渡すと、`astro.config.mjs`ファイルの`base`の値が上書きされます。

### `--verbose`

詳細なログを有効にします。これは問題をデバッグするのに有用です。

### `--silent`

サイレントなロギングを有効にし、コンソールの出力なしでサーバーが実行されます。

## グローバルのフラグ

`astro`のCLIについての情報を取得するために以下のフラグを使用してください。

### `--version`

Astroのバージョン番号を出力し、終了します。

### `--open`

サーバーの起動時に自動的にブラウザでアプリを開きます。

### `--help`

ヘルプメッセージを出力し、終了します。

## 高度なAPI（実験的）

Astroを実行する際により細かな制御が必要な場合のために、`"astro"`パッケージはCLIコマンドをプログラムで実行するためのAPIもエクスポートしています。

これらのAPIは実験的であり、APIのシグネチャは変更される可能性があります。更新情報は[Astroの変更履歴](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)に記載されており、以下の情報は常に現在の最新情報を表示しています。

### `AstroInlineConfig`

`AstroInlineConfig`型は以下のすべてのコマンドAPIで使用されます。これはユーザーの[Astro設定](/ja/reference/configuration-reference/)型の拡張です。

```ts
interface AstroInlineConfig extends AstroUserConfig {
	configFile?: string | false;
	mode?: "development" | "production";
	logLevel?: "debug" | "info" | "warn" | "error" | "silent";
}
```

#### `configFile`

<p>

**データ型:** `string | false`<br />
**デフォルト値:** `undefined`
</p>

Astro設定ファイルへのカスタムパスです。

この値がundefind（デフォルト）であるか設定されていない場合、Astroは`root`を起点として`astro.config.(js,mjs,ts)`ファイルを検索し、設定ファイルが見つかればそれを読み込みます。

相対パスが設定されている場合、現在の作業ディレクトリを基準として解決されます。

設定ファイルの読み込みを無効にするには`false`を設定します。

このオブジェクトに渡されたインライン設定は、読み込まれた他のユーザー設定とマージされる際に最優先されます。

#### `mode`

<p>

**データ型:** `"development" | "production"`<br />
**デフォルト値:** `astro dev`の実行時は`"development"`、`astro build`の実行時は`"production"`
</p>

サイトをビルドする際に使用されるモードで、"development"または"production"のコードを生成します。

#### `logLevel`

<p>

**データ型:** `"debug" | "info" | "warn" | "error" | "silent"`<br />
**デフォルト値:** `"info"`
</p>

Astroが出力するログメッセージをフィルタリングするためのログレベルです。

- `"debug"`: ノイズを含むデバッグ用の情報とともにすべてのログを出力します。
- `"info"`: 情報メッセージ、警告、エラーをログに出力します。
- `"warn"`: 警告とエラーをログに出力します。
- `"error"`: エラーのみをログに出力します。
- `"silent"`: ログを出力しません。

### `dev()`

**データ型:** `(inlineConfig: AstroInlineConfig) => AstroDevServer`

[`astro dev`](#astro-dev)と同様に、Astroの開発サーバーを実行します。

```js
import { dev } from "astro";

const devServer = await dev({
  root: "./my-project",
});

// 必要に応じてサーバーを停止する
await devServer.stop();
```

### `build()`

**データ型:** `(inlineConfig: AstroInlineConfig) => void`

[`astro build`](#astro-build)と同様に、サイトをデプロイ用にビルドします。

```js
import { build } from "astro";

await build({
  root: "./my-project",
});
```

### `preview()`

**データ型:** `(inlineConfig: AstroInlineConfig) => AstroPreviewServer`

[`astro preview`](#astro-preview)と同様に、静的な`dist/`ディレクトリを配信するためのローカルサーバーを起動します。

```js
import { preview } from "astro";

const previewServer = await preview({
  root: "./my-project",
});

// 必要に応じてサーバーを停止する
await previewServer.stop();
```

### `sync()`

**データ型:** `(inlineConfig: AstroInlineConfig) => number`

[`astro sync`](#astro-sync)と同様に、すべてのAstroモジュールに対してTypeScriptの型を生成します。

```js
import { sync } from "astro";

const exitCode = await sync({
  root: "./my-project",
});

process.exit(exitCode)
```
